package com.javabi.htmlbuilder.html;

/**
 * An HTML Entity
 */
public enum HTMLEntity implements HTMLContent {

	/** &amp;nbsp; - no-break space = non-breaking space (&amp;#160;) */
	NBSP("nbsp", 160),
	/** &amp;iexcl; - inverted exclamation mark (&amp;#161;) */
	IEXCL("iexcl", 161),
	/** &amp;cent; - cent sign (&amp;#162;) */
	CENT("cent", 162),
	/** &amp;pound; - pound sign (&amp;#163;) */
	POUND("pound", 163),
	/** &amp;curren; - currency sign (&amp;#164;) */
	CURREN("curren", 164),
	/** &amp;yen; - yen sign = yuan sign (&amp;#165;) */
	YEN("yen", 165),
	/** &amp;brvbar; - broken bar = broken vertical bar (&amp;#166;) */
	BRVBAR("brvbar", 166),
	/** &amp;sect; - section sign (&amp;#167;) */
	SECT("sect", 167),
	/** &amp;uml; - diaeresis = spacing diaeresis (&amp;#168;) */
	UML("uml", 168),
	/** &amp;copy; - copyright sign (&amp;#169;) */
	COPY("copy", 169),
	/** &amp;ordf; - feminine ordinal indicator (&amp;#170;) */
	ORDF("ordf", 170),
	/** &amp;laquo; - left-pointing double angle quotation mark (&amp;#171;) */
	LAQUO("laquo", 171),
	/** &amp;not; - not sign (&amp;#172;) */
	NOT("not", 172),
	/** &amp;shy; - soft hyphen = discretionary hyphen (&amp;#173;) */
	SHY("shy", 173),
	/** &amp;reg; - registered sign = registered trade mark sign (&amp;#174;) */
	REG("reg", 174),
	/** &amp;macr; - macron = spacing macron = overline (&amp;#175;) */
	MACR("macr", 175),
	/** &amp;deg; - degree sign (&amp;#176;) */
	DEG("deg", 176),
	/** &amp;plusmn; - plus-minus sign = plus-or-minus sign (&amp;#177;) */
	PLUSMN("plusmn", 177),
	/** &amp;sup2; - superscript two = superscript digit two (&amp;#178;) */
	SUP2("sup2", 178),
	/** &amp;sup3; - superscript three = superscript digit three (&amp;#179;) */
	SUP3("sup3", 179),
	/** &amp;acute; - acute accent = spacing acute (&amp;#180;) */
	ACUTE("acute", 180),
	/** &amp;micro; - micro sign (&amp;#181;) */
	MICRO("micro", 181),
	/** &amp;para; - pilcrow sign = paragraph sign (&amp;#182;) */
	PARA("para", 182),
	/** &amp;middot; - middle dot = Georgian comma (&amp;#183;) */
	MIDDOT("middot", 183),
	/** &amp;cedil; - cedilla = spacing cedilla (&amp;#184;) */
	CEDIL("cedil", 184),
	/** &amp;sup1; - superscript one = superscript digit one (&amp;#185;) */
	SUP1("sup1", 185),
	/** &amp;ordm; - masculine ordinal indicator (&amp;#186;) */
	ORDM("ordm", 186),
	/** &amp;raquo; - right-pointing double angle quotation mark (&amp;#187;) */
	RAQUO("raquo", 187),
	/** &amp;frac14; - vulgar fraction one quarter (&amp;#188;) */
	FRAC14("frac14", 188),
	/** &amp;frac12; - vulgar fraction one half (&amp;#189;) */
	FRAC12("frac12", 189),
	/** &amp;frac34; - vulgar fraction three quarters (&amp;#190;) */
	FRAC34("frac34", 190),
	/** &amp;iquest; - inverted question mark (&amp;#191;) */
	IQUEST("iquest", 191),
	/** &amp;Agrave; - latin capital letter A with grave (&amp;#192;) */
	UPPER_AGRAVE("Agrave", 192),
	/** &amp;Aacute; - latin capital letter A with acute (&amp;#193;) */
	UPPER_AACUTE("Aacute", 193),
	/** &amp;Acirc; - latin capital letter A with circumflex (&amp;#194;) */
	UPPER_ACIRC("Acirc", 194),
	/** &amp;Atilde; - latin capital letter A with tilde (&amp;#195;) */
	UPPER_ATILDE("Atilde", 195),
	/** &amp;Auml; - latin capital letter A with diaeresis (&amp;#196;) */
	UPPER_AUML("Auml", 196),
	/** &amp;Aring; - latin capital letter A with ring above (&amp;#197;) */
	UPPER_ARING("Aring", 197),
	/** &amp;AElig; - latin capital letter AE (&amp;#198;) */
	UPPER_AELIG("AElig", 198),
	/** &amp;Ccedil; - latin capital letter C with cedilla (&amp;#199;) */
	UPPER_CCEDIL("Ccedil", 199),
	/** &amp;Egrave; - latin capital letter E with grave (&amp;#200;) */
	UPPER_EGRAVE("Egrave", 200),
	/** &amp;Eacute; - latin capital letter E with acute (&amp;#201;) */
	UPPER_EACUTE("Eacute", 201),
	/** &amp;Ecirc; - latin capital letter E with circumflex (&amp;#202;) */
	UPPER_ECIRC("Ecirc", 202),
	/** &amp;Euml; - latin capital letter E with diaeresis (&amp;#203;) */
	UPPER_EUML("Euml", 203),
	/** &amp;Igrave; - latin capital letter I with grave (&amp;#204;) */
	UPPER_IGRAVE("Igrave", 204),
	/** &amp;Iacute; - latin capital letter I with acute (&amp;#205;) */
	UPPER_IACUTE("Iacute", 205),
	/** &amp;Icirc; - latin capital letter I with circumflex (&amp;#206;) */
	UPPER_ICIRC("Icirc", 206),
	/** &amp;Iuml; - latin capital letter I with diaeresis (&amp;#207;) */
	UPPER_IUML("Iuml", 207),
	/** &amp;ETH; - latin capital letter ETH (&amp;#208;) */
	UPPER_ETH("ETH", 208),
	/** &amp;Ntilde; - latin capital letter N with tilde (&amp;#209;) */
	UPPER_NTILDE("Ntilde", 209),
	/** &amp;Ograve; - latin capital letter O with grave (&amp;#210;) */
	UPPER_OGRAVE("Ograve", 210),
	/** &amp;Oacute; - latin capital letter O with acute (&amp;#211;) */
	UPPER_OACUTE("Oacute", 211),
	/** &amp;Ocirc; - latin capital letter O with circumflex (&amp;#212;) */
	UPPER_OCIRC("Ocirc", 212),
	/** &amp;Otilde; - latin capital letter O with tilde (&amp;#213;) */
	UPPER_OTILDE("Otilde", 213),
	/** &amp;Ouml; - latin capital letter O with diaeresis (&amp;#214;) */
	UPPER_OUML("Ouml", 214),
	/** &amp;times; - multiplication sign (&amp;#215;) */
	TIMES("times", 215),
	/** &amp;Oslash; - latin capital letter O with stroke (&amp;#216;) */
	UPPER_OSLASH("Oslash", 216),
	/** &amp;Ugrave; - latin capital letter U with grave (&amp;#217;) */
	UPPER_UGRAVE("Ugrave", 217),
	/** &amp;Uacute; - latin capital letter U with acute (&amp;#218;) */
	UPPER_UACUTE("Uacute", 218),
	/** &amp;Ucirc; - latin capital letter U with circumflex (&amp;#219;) */
	UPPER_UCIRC("Ucirc", 219),
	/** &amp;Uuml; - latin capital letter U with diaeresis (&amp;#220;) */
	UPPER_UUML("Uuml", 220),
	/** &amp;Yacute; - latin capital letter Y with acute (&amp;#221;) */
	UPPER_YACUTE("Yacute", 221),
	/** &amp;THORN; - latin capital letter THORN (&amp;#222;) */
	UPPER_THORN("THORN", 222),
	/** &amp;szlig; - latin small letter sharp s = ess-zed (&amp;#223;) */
	LOWER_SZLIG("szlig", 223),
	/** &amp;agrave; - latin small letter a with grave (&amp;#224;) */
	LOWER_AGRAVE("agrave", 224),
	/** &amp;aacute; - latin small letter a with acute (&amp;#225;) */
	LOWER_AACUTE("aacute", 225),
	/** &amp;acirc; - latin small letter a with circumflex (&amp;#226;) */
	LOWER_ACIRC("acirc", 226),
	/** &amp;atilde; - latin small letter a with tilde (&amp;#227;) */
	LOWER_ATILDE("atilde", 227),
	/** &amp;auml; - latin small letter a with diaeresis (&amp;#228;) */
	LOWER_AUML("auml", 228),
	/** &amp;aring; - latin small letter a with ring above (&amp;#229;) */
	LOWER_ARING("aring", 229),
	/** &amp;aelig; - latin small letter ae (&amp;#230;) */
	LOWER_AELIG("aelig", 230),
	/** &amp;ccedil; - latin small letter c with cedilla (&amp;#231;) */
	LOWER_CCEDIL("ccedil", 231),
	/** &amp;egrave; - latin small letter e with grave (&amp;#232;) */
	LOWER_EGRAVE("egrave", 232),
	/** &amp;eacute; - latin small letter e with acute (&amp;#233;) */
	LOWER_EACUTE("eacute", 233),
	/** &amp;ecirc; - latin small letter e with circumflex (&amp;#234;) */
	LOWER_ECIRC("ecirc", 234),
	/** &amp;euml; - latin small letter e with diaeresis (&amp;#235;) */
	LOWER_EUML("euml", 235),
	/** &amp;igrave; - latin small letter i with grave (&amp;#236;) */
	LOWER_IGRAVE("igrave", 236),
	/** &amp;iacute; - latin small letter i with acute (&amp;#237;) */
	LOWER_IACUTE("iacute", 237),
	/** &amp;icirc; - latin small letter i with circumflex (&amp;#238;) */
	LOWER_ICIRC("icirc", 238),
	/** &amp;iuml; - latin small letter i with diaeresis (&amp;#239;) */
	LOWER_IUML("iuml", 239),
	/** &amp;eth; - latin small letter eth (&amp;#240;) */
	LOWER_ETH("eth", 240),
	/** &amp;ntilde; - latin small letter n with tilde (&amp;#241;) */
	LOWER_NTILDE("ntilde", 241),
	/** &amp;ograve; - latin small letter o with grave (&amp;#242;) */
	LOWER_OGRAVE("ograve", 242),
	/** &amp;oacute; - latin small letter o with acute (&amp;#243;) */
	LOWER_OACUTE("oacute", 243),
	/** &amp;ocirc; - latin small letter o with circumflex (&amp;#244;) */
	LOWER_OCIRC("ocirc", 244),
	/** &amp;otilde; - latin small letter o with tilde (&amp;#245;) */
	LOWER_OTILDE("otilde", 245),
	/** &amp;ouml; - latin small letter o with diaeresis (&amp;#246;) */
	LOWER_OUML("ouml", 246),
	/** &amp;divide; - division sign (&amp;#247;) */
	DIVIDE("divide", 247),
	/** &amp;oslash; - latin small letter o with stroke (&amp;#248;) */
	LOWER_OSLASH("oslash", 248),
	/** &amp;ugrave; - latin small letter u with grave (&amp;#249;) */
	LOWER_UGRAVE("ugrave", 249),
	/** &amp;uacute; - latin small letter u with acute (&amp;#250;) */
	LOWER_UACUTE("uacute", 250),
	/** &amp;ucirc; - latin small letter u with circumflex (&amp;#251;) */
	LOWER_UCIRC("ucirc", 251),
	/** &amp;uuml; - latin small letter u with diaeresis (&amp;#252;) */
	LOWER_UUML("uuml", 252),
	/** &amp;yacute; - latin small letter y with acute (&amp;#253;) */
	LOWER_YACUTE("yacute", 253),
	/** &amp;thorn; - latin small letter thorn (&amp;#254;) */
	LOWER_THORN("thorn", 254),
	/** &amp;yuml; - latin small letter y with diaeresis (&amp;#255;) */
	LOWER_YUML("yuml", 255);

	/** The name. */
	private final String name;
	/** The number. */
	private final int number;

	/**
	 * Creates a new entity.
	 * @param name the name.
	 * @param number the number.
	 */
	private HTMLEntity(String name, int number) {
		this.name = name;
		this.number = number;
	}

	/**
	 * Returns the name
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * Returns the number
	 * @return the number
	 */
	public int getNumber() {
		return number;
	}

	/**
	 * Returns true to format this element.
	 * @return true to format this element.
	 */
	public boolean format() {
		return false;
	}

	/**
	 * Append this to the given html builder.
	 * @param html the html builder.
	 * @return the html builder.
	 */
	public HTMLBuilder appendTo(HTMLBuilder html) {
		html.entity(name);
		return html;
	}

}
